
phase3：     文件格式 elf64-x86-64


Disassembly of section .init:

0000000000400730 <_init>:
  400730:	48 83 ec 08          	sub    $0x8,%rsp
  400734:	48 8b 05 bd 18 20 00 	mov    0x2018bd(%rip),%rax        # 601ff8 <__gmon_start__>
  40073b:	48 85 c0             	test   %rax,%rax
  40073e:	74 05                	je     400745 <_init+0x15>
  400740:	e8 bb 00 00 00       	call   400800 <__gmon_start__@plt>
  400745:	48 83 c4 08          	add    $0x8,%rsp
  400749:	c3                   	ret

Disassembly of section .plt:

0000000000400750 <.plt>:
  400750:	ff 35 b2 18 20 00    	push   0x2018b2(%rip)        # 602008 <_GLOBAL_OFFSET_TABLE_+0x8>
  400756:	ff 25 b4 18 20 00    	jmp    *0x2018b4(%rip)        # 602010 <_GLOBAL_OFFSET_TABLE_+0x10>
  40075c:	0f 1f 40 00          	nopl   0x0(%rax)

0000000000400760 <puts@plt>:
  400760:	ff 25 b2 18 20 00    	jmp    *0x2018b2(%rip)        # 602018 <puts@GLIBC_2.2.5>
  400766:	68 00 00 00 00       	push   $0x0
  40076b:	e9 e0 ff ff ff       	jmp    400750 <.plt>

0000000000400770 <ferror@plt>:
  400770:	ff 25 aa 18 20 00    	jmp    *0x2018aa(%rip)        # 602020 <ferror@GLIBC_2.2.5>
  400776:	68 01 00 00 00       	push   $0x1
  40077b:	e9 d0 ff ff ff       	jmp    400750 <.plt>

0000000000400780 <fread@plt>:
  400780:	ff 25 a2 18 20 00    	jmp    *0x2018a2(%rip)        # 602028 <fread@GLIBC_2.2.5>
  400786:	68 02 00 00 00       	push   $0x2
  40078b:	e9 c0 ff ff ff       	jmp    400750 <.plt>

0000000000400790 <getpid@plt>:
  400790:	ff 25 9a 18 20 00    	jmp    *0x20189a(%rip)        # 602030 <getpid@GLIBC_2.2.5>
  400796:	68 03 00 00 00       	push   $0x3
  40079b:	e9 b0 ff ff ff       	jmp    400750 <.plt>

00000000004007a0 <fclose@plt>:
  4007a0:	ff 25 92 18 20 00    	jmp    *0x201892(%rip)        # 602038 <fclose@GLIBC_2.2.5>
  4007a6:	68 04 00 00 00       	push   $0x4
  4007ab:	e9 a0 ff ff ff       	jmp    400750 <.plt>

00000000004007b0 <mmap@plt>:
  4007b0:	ff 25 8a 18 20 00    	jmp    *0x20188a(%rip)        # 602040 <mmap@GLIBC_2.2.5>
  4007b6:	68 05 00 00 00       	push   $0x5
  4007bb:	e9 90 ff ff ff       	jmp    400750 <.plt>

00000000004007c0 <printf@plt>:
  4007c0:	ff 25 82 18 20 00    	jmp    *0x201882(%rip)        # 602048 <printf@GLIBC_2.2.5>
  4007c6:	68 06 00 00 00       	push   $0x6
  4007cb:	e9 80 ff ff ff       	jmp    400750 <.plt>

00000000004007d0 <memset@plt>:
  4007d0:	ff 25 7a 18 20 00    	jmp    *0x20187a(%rip)        # 602050 <memset@GLIBC_2.2.5>
  4007d6:	68 07 00 00 00       	push   $0x7
  4007db:	e9 70 ff ff ff       	jmp    400750 <.plt>

00000000004007e0 <__libc_start_main@plt>:
  4007e0:	ff 25 72 18 20 00    	jmp    *0x201872(%rip)        # 602058 <__libc_start_main@GLIBC_2.2.5>
  4007e6:	68 08 00 00 00       	push   $0x8
  4007eb:	e9 60 ff ff ff       	jmp    400750 <.plt>

00000000004007f0 <srand@plt>:
  4007f0:	ff 25 6a 18 20 00    	jmp    *0x20186a(%rip)        # 602060 <srand@GLIBC_2.2.5>
  4007f6:	68 09 00 00 00       	push   $0x9
  4007fb:	e9 50 ff ff ff       	jmp    400750 <.plt>

0000000000400800 <__gmon_start__@plt>:
  400800:	ff 25 62 18 20 00    	jmp    *0x201862(%rip)        # 602068 <__gmon_start__>
  400806:	68 0a 00 00 00       	push   $0xa
  40080b:	e9 40 ff ff ff       	jmp    400750 <.plt>

0000000000400810 <munmap@plt>:
  400810:	ff 25 5a 18 20 00    	jmp    *0x20185a(%rip)        # 602070 <munmap@GLIBC_2.2.5>
  400816:	68 0b 00 00 00       	push   $0xb
  40081b:	e9 30 ff ff ff       	jmp    400750 <.plt>

0000000000400820 <fopen@plt>:
  400820:	ff 25 52 18 20 00    	jmp    *0x201852(%rip)        # 602078 <fopen@GLIBC_2.2.5>
  400826:	68 0c 00 00 00       	push   $0xc
  40082b:	e9 20 ff ff ff       	jmp    400750 <.plt>

0000000000400830 <fwrite@plt>:
  400830:	ff 25 4a 18 20 00    	jmp    *0x20184a(%rip)        # 602080 <fwrite@GLIBC_2.2.5>
  400836:	68 0d 00 00 00       	push   $0xd
  40083b:	e9 10 ff ff ff       	jmp    400750 <.plt>

0000000000400840 <rand@plt>:
  400840:	ff 25 42 18 20 00    	jmp    *0x201842(%rip)        # 602088 <rand@GLIBC_2.2.5>
  400846:	68 0e 00 00 00       	push   $0xe
  40084b:	e9 00 ff ff ff       	jmp    400750 <.plt>

Disassembly of section .text:

0000000000400850 <_start>:
  400850:	31 ed                	xor    %ebp,%ebp
  400852:	49 89 d1             	mov    %rdx,%r9
  400855:	5e                   	pop    %rsi
  400856:	48 89 e2             	mov    %rsp,%rdx
  400859:	48 83 e4 f0          	and    $0xfffffffffffffff0,%rsp
  40085d:	50                   	push   %rax
  40085e:	54                   	push   %rsp
  40085f:	49 c7 c0 d0 0f 40 00 	mov    $0x400fd0,%r8
  400866:	48 c7 c1 60 0f 40 00 	mov    $0x400f60,%rcx
  40086d:	48 c7 c7 51 0d 40 00 	mov    $0x400d51,%rdi
  400874:	e8 67 ff ff ff       	call   4007e0 <__libc_start_main@plt>
  400879:	f4                   	hlt
  40087a:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)

0000000000400880 <deregister_tm_clones>:
  400880:	b8 3f 21 60 00       	mov    $0x60213f,%eax
  400885:	55                   	push   %rbp
  400886:	48 2d 38 21 60 00    	sub    $0x602138,%rax
  40088c:	48 83 f8 0e          	cmp    $0xe,%rax
  400890:	48 89 e5             	mov    %rsp,%rbp
  400893:	77 02                	ja     400897 <deregister_tm_clones+0x17>
  400895:	5d                   	pop    %rbp
  400896:	c3                   	ret
  400897:	b8 00 00 00 00       	mov    $0x0,%eax
  40089c:	48 85 c0             	test   %rax,%rax
  40089f:	74 f4                	je     400895 <deregister_tm_clones+0x15>
  4008a1:	5d                   	pop    %rbp
  4008a2:	bf 38 21 60 00       	mov    $0x602138,%edi
  4008a7:	ff e0                	jmp    *%rax
  4008a9:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)

00000000004008b0 <register_tm_clones>:
  4008b0:	b8 38 21 60 00       	mov    $0x602138,%eax
  4008b5:	55                   	push   %rbp
  4008b6:	48 2d 38 21 60 00    	sub    $0x602138,%rax
  4008bc:	48 c1 f8 03          	sar    $0x3,%rax
  4008c0:	48 89 e5             	mov    %rsp,%rbp
  4008c3:	48 89 c2             	mov    %rax,%rdx
  4008c6:	48 c1 ea 3f          	shr    $0x3f,%rdx
  4008ca:	48 01 d0             	add    %rdx,%rax
  4008cd:	48 d1 f8             	sar    $1,%rax
  4008d0:	75 02                	jne    4008d4 <register_tm_clones+0x24>
  4008d2:	5d                   	pop    %rbp
  4008d3:	c3                   	ret
  4008d4:	ba 00 00 00 00       	mov    $0x0,%edx
  4008d9:	48 85 d2             	test   %rdx,%rdx
  4008dc:	74 f4                	je     4008d2 <register_tm_clones+0x22>
  4008de:	5d                   	pop    %rbp
  4008df:	48 89 c6             	mov    %rax,%rsi
  4008e2:	bf 38 21 60 00       	mov    $0x602138,%edi
  4008e7:	ff e2                	jmp    *%rdx
  4008e9:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)

00000000004008f0 <__do_global_dtors_aux>:
  4008f0:	80 3d 59 18 20 00 00 	cmpb   $0x0,0x201859(%rip)        # 602150 <completed.6355>
  4008f7:	75 11                	jne    40090a <__do_global_dtors_aux+0x1a>
  4008f9:	55                   	push   %rbp
  4008fa:	48 89 e5             	mov    %rsp,%rbp
  4008fd:	e8 7e ff ff ff       	call   400880 <deregister_tm_clones>
  400902:	5d                   	pop    %rbp
  400903:	c6 05 46 18 20 00 01 	movb   $0x1,0x201846(%rip)        # 602150 <completed.6355>
  40090a:	f3 c3                	repz ret
  40090c:	0f 1f 40 00          	nopl   0x0(%rax)

0000000000400910 <frame_dummy>:
  400910:	48 83 3d 08 15 20 00 	cmpq   $0x0,0x201508(%rip)        # 601e20 <__JCR_END__>
  400917:	00 
  400918:	74 1e                	je     400938 <frame_dummy+0x28>
  40091a:	b8 00 00 00 00       	mov    $0x0,%eax
  40091f:	48 85 c0             	test   %rax,%rax
  400922:	74 14                	je     400938 <frame_dummy+0x28>
  400924:	55                   	push   %rbp
  400925:	bf 20 1e 60 00       	mov    $0x601e20,%edi
  40092a:	48 89 e5             	mov    %rsp,%rbp
  40092d:	ff d0                	call   *%rax
  40092f:	5d                   	pop    %rbp
  400930:	e9 7b ff ff ff       	jmp    4008b0 <register_tm_clones>
  400935:	0f 1f 00             	nopl   (%rax)
  400938:	e9 73 ff ff ff       	jmp    4008b0 <register_tm_clones>

000000000040093d <_r_func_>:
  40093d:	55                   	push   %rbp
  40093e:	48 89 e5             	mov    %rsp,%rbp
  400941:	90                   	nop
  400942:	90                   	nop
  400943:	90                   	nop
  400944:	90                   	nop
  400945:	90                   	nop
  400946:	90                   	nop
  400947:	90                   	nop
  400948:	90                   	nop
  400949:	90                   	nop
  40094a:	5d                   	pop    %rbp
  40094b:	c3                   	ret

000000000040094c <visit>:
  40094c:	55                   	push   %rbp
  40094d:	48 89 e5             	mov    %rsp,%rbp
  400950:	53                   	push   %rbx
  400951:	48 83 ec 28          	sub    $0x28,%rsp
  400955:	48 89 7d d8          	mov    %rdi,-0x28(%rbp)
  400959:	48 89 75 d0          	mov    %rsi,-0x30(%rbp)
  40095d:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
  400961:	8b 00                	mov    (%rax),%eax
  400963:	85 c0                	test   %eax,%eax
  400965:	79 07                	jns    40096e <visit+0x22>
  400967:	b8 00 00 00 00       	mov    $0x0,%eax
  40096c:	eb 58                	jmp    4009c6 <visit+0x7a>
  40096e:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
  400972:	8b 00                	mov    (%rax),%eax
  400974:	48 98                	cltq
  400976:	48 8d 14 85 00 00 00 	lea    0x0(,%rax,4),%rdx
  40097d:	00 
  40097e:	48 8b 45 d8          	mov    -0x28(%rbp),%rax
  400982:	48 01 d0             	add    %rdx,%rax
  400985:	48 89 45 e8          	mov    %rax,-0x18(%rbp)
  400989:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  40098d:	48 8d 55 e8          	lea    -0x18(%rbp),%rdx
  400991:	48 89 c6             	mov    %rax,%rsi
  400994:	bf f8 0f 40 00       	mov    $0x400ff8,%edi
  400999:	b8 00 00 00 00       	mov    $0x0,%eax
  40099e:	e8 1d fe ff ff       	call   4007c0 <printf@plt>
  4009a3:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  4009a7:	8b 18                	mov    (%rax),%ebx
  4009a9:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
  4009ad:	48 8d 50 04          	lea    0x4(%rax),%rdx
  4009b1:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  4009b5:	48 83 c0 04          	add    $0x4,%rax
  4009b9:	48 89 d6             	mov    %rdx,%rsi
  4009bc:	48 89 c7             	mov    %rax,%rdi
  4009bf:	e8 88 ff ff ff       	call   40094c <visit>
  4009c4:	01 d8                	add    %ebx,%eax
  4009c6:	48 83 c4 28          	add    $0x28,%rsp
  4009ca:	5b                   	pop    %rbx
  4009cb:	5d                   	pop    %rbp
  4009cc:	c3                   	ret

00000000004009cd <target>:
  4009cd:	55                   	push   %rbp
  4009ce:	48 89 e5             	mov    %rsp,%rbp
  4009d1:	53                   	push   %rbx
  4009d2:	48 83 ec 58          	sub    $0x58,%rsp
  4009d6:	48 89 7d a8          	mov    %rdi,-0x58(%rbp)
  4009da:	c7 45 b0 27 00 00 00 	movl   $0x27,-0x50(%rbp)
  4009e1:	c7 45 b4 29 00 00 00 	movl   $0x29,-0x4c(%rbp)
  4009e8:	c7 45 b8 30 00 00 00 	movl   $0x30,-0x48(%rbp)
  4009ef:	c7 45 bc 31 00 00 00 	movl   $0x31,-0x44(%rbp)
  4009f6:	c7 45 c0 07 00 00 00 	movl   $0x7,-0x40(%rbp)
  4009fd:	c7 45 c4 05 00 00 00 	movl   $0x5,-0x3c(%rbp)
  400a04:	c7 45 c8 3d 00 00 00 	movl   $0x3d,-0x38(%rbp)
  400a0b:	c7 45 cc 22 00 00 00 	movl   $0x22,-0x34(%rbp)
  400a12:	c7 45 d0 0c 00 00 00 	movl   $0xc,-0x30(%rbp)
  400a19:	c7 45 d4 2a 00 00 00 	movl   $0x2a,-0x2c(%rbp)
  400a20:	c7 45 d8 0d 00 00 00 	movl   $0xd,-0x28(%rbp)
  400a27:	c7 45 dc 16 00 00 00 	movl   $0x16,-0x24(%rbp)
  400a2e:	c7 45 e0 03 00 00 00 	movl   $0x3,-0x20(%rbp)
  400a35:	c7 45 e4 04 00 00 00 	movl   $0x4,-0x1c(%rbp)
  400a3c:	c7 45 e8 2c 00 00 00 	movl   $0x2c,-0x18(%rbp)
  400a43:	48 8b 55 a8          	mov    -0x58(%rbp),%rdx
  400a47:	48 8d 45 b0          	lea    -0x50(%rbp),%rax
  400a4b:	48 89 d6             	mov    %rdx,%rsi
  400a4e:	48 89 c7             	mov    %rax,%rdi
  400a51:	e8 f6 fe ff ff       	call   40094c <visit>
  400a56:	89 c3                	mov    %eax,%ebx
  400a58:	83 fb 5a             	cmp    $0x5a,%ebx
  400a5b:	75 1e                	jne    400a7b <target+0xae>
  400a5d:	48 8b 45 a8          	mov    -0x58(%rbp),%rax
  400a61:	8b 10                	mov    (%rax),%edx
  400a63:	48 8b 45 a8          	mov    -0x58(%rbp),%rax
  400a67:	48 89 c6             	mov    %rax,%rsi
  400a6a:	bf 08 10 40 00       	mov    $0x401008,%edi
  400a6f:	b8 00 00 00 00       	mov    $0x0,%eax
  400a74:	e8 47 fd ff ff       	call   4007c0 <printf@plt>
  400a79:	eb 0a                	jmp    400a85 <target+0xb8>
  400a7b:	bf 5b 10 40 00       	mov    $0x40105b,%edi
  400a80:	e8 db fc ff ff       	call   400760 <puts@plt>
  400a85:	89 d8                	mov    %ebx,%eax
  400a87:	48 83 c4 58          	add    $0x58,%rsp
  400a8b:	5b                   	pop    %rbx
  400a8c:	5d                   	pop    %rbp
  400a8d:	c3                   	ret

0000000000400a8e <do_phase>:
  400a8e:	55                   	push   %rbp
  400a8f:	48 89 e5             	mov    %rsp,%rbp
  400a92:	48 83 ec 60          	sub    $0x60,%rsp
  400a96:	48 89 7d a8          	mov    %rdi,-0x58(%rbp)
  400a9a:	48 8d 55 b0          	lea    -0x50(%rbp),%rdx
  400a9e:	48 8b 45 a8          	mov    -0x58(%rbp),%rax
  400aa2:	48 89 d6             	mov    %rdx,%rsi
  400aa5:	48 89 c7             	mov    %rax,%rdi
  400aa8:	e8 41 00 00 00       	call   400aee <digit2hex>
  400aad:	b8 00 00 00 00       	mov    $0x0,%eax
  400ab2:	c9                   	leave
  400ab3:	c3                   	ret

0000000000400ab4 <phase>:
  400ab4:	55                   	push   %rbp
  400ab5:	48 89 e5             	mov    %rsp,%rbp
  400ab8:	53                   	push   %rbx
  400ab9:	48 83 ec 18          	sub    $0x18,%rsp
  400abd:	48 89 7d e8          	mov    %rdi,-0x18(%rbp)
  400ac1:	bb 00 00 00 00       	mov    $0x0,%ebx
  400ac6:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  400aca:	48 89 c7             	mov    %rax,%rdi
  400acd:	e8 bc ff ff ff       	call   400a8e <do_phase>
  400ad2:	89 c3                	mov    %eax,%ebx
  400ad4:	89 de                	mov    %ebx,%esi
  400ad6:	bf 78 10 40 00       	mov    $0x401078,%edi
  400adb:	b8 00 00 00 00       	mov    $0x0,%eax
  400ae0:	e8 db fc ff ff       	call   4007c0 <printf@plt>
  400ae5:	89 d8                	mov    %ebx,%eax
  400ae7:	48 83 c4 18          	add    $0x18,%rsp
  400aeb:	5b                   	pop    %rbx
  400aec:	5d                   	pop    %rbp
  400aed:	c3                   	ret

0000000000400aee <digit2hex>:
  400aee:	55                   	push   %rbp
  400aef:	48 89 e5             	mov    %rsp,%rbp
  400af2:	48 89 7d e8          	mov    %rdi,-0x18(%rbp)
  400af6:	48 89 75 e0          	mov    %rsi,-0x20(%rbp)
  400afa:	48 c7 45 f8 00 00 00 	movq   $0x0,-0x8(%rbp)
  400b01:	00 
  400b02:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%rbp)
  400b09:	e9 a5 00 00 00       	jmp    400bb3 <digit2hex+0xc5>
  400b0e:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  400b12:	0f b6 00             	movzbl (%rax),%eax
  400b15:	3c 23                	cmp    $0x23,%al
  400b17:	75 12                	jne    400b2b <digit2hex+0x3d>
  400b19:	83 7d f4 00          	cmpl   $0x0,-0xc(%rbp)
  400b1d:	0f 94 c0             	sete   %al
  400b20:	0f b6 c0             	movzbl %al,%eax
  400b23:	89 45 f4             	mov    %eax,-0xc(%rbp)
  400b26:	e9 83 00 00 00       	jmp    400bae <digit2hex+0xc0>
  400b2b:	83 7d f4 00          	cmpl   $0x0,-0xc(%rbp)
  400b2f:	74 02                	je     400b33 <digit2hex+0x45>
  400b31:	eb 7b                	jmp    400bae <digit2hex+0xc0>
  400b33:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  400b37:	0f b6 00             	movzbl (%rax),%eax
  400b3a:	0f be c0             	movsbl %al,%eax
  400b3d:	83 e0 7f             	and    $0x7f,%eax
  400b40:	48 98                	cltq
  400b42:	0f b6 80 a0 10 40 00 	movzbl 0x4010a0(%rax),%eax
  400b49:	3c ff                	cmp    $0xff,%al
  400b4b:	75 02                	jne    400b4f <digit2hex+0x61>
  400b4d:	eb 5f                	jmp    400bae <digit2hex+0xc0>
  400b4f:	48 83 7d f8 00       	cmpq   $0x0,-0x8(%rbp)
  400b54:	74 50                	je     400ba6 <digit2hex+0xb8>
  400b56:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400b5a:	0f b6 00             	movzbl (%rax),%eax
  400b5d:	0f be c0             	movsbl %al,%eax
  400b60:	83 e0 7f             	and    $0x7f,%eax
  400b63:	48 98                	cltq
  400b65:	0f b6 80 a0 10 40 00 	movzbl 0x4010a0(%rax),%eax
  400b6c:	0f b6 c0             	movzbl %al,%eax
  400b6f:	c1 e0 04             	shl    $0x4,%eax
  400b72:	89 c2                	mov    %eax,%edx
  400b74:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  400b78:	0f b6 00             	movzbl (%rax),%eax
  400b7b:	0f be c0             	movsbl %al,%eax
  400b7e:	83 e0 7f             	and    $0x7f,%eax
  400b81:	48 98                	cltq
  400b83:	0f b6 80 a0 10 40 00 	movzbl 0x4010a0(%rax),%eax
  400b8a:	83 e0 0f             	and    $0xf,%eax
  400b8d:	09 d0                	or     %edx,%eax
  400b8f:	89 c2                	mov    %eax,%edx
  400b91:	48 8b 45 e0          	mov    -0x20(%rbp),%rax
  400b95:	88 10                	mov    %dl,(%rax)
  400b97:	48 83 45 e0 01       	addq   $0x1,-0x20(%rbp)
  400b9c:	48 c7 45 f8 00 00 00 	movq   $0x0,-0x8(%rbp)
  400ba3:	00 
  400ba4:	eb 08                	jmp    400bae <digit2hex+0xc0>
  400ba6:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  400baa:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
  400bae:	48 83 45 e8 01       	addq   $0x1,-0x18(%rbp)
  400bb3:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  400bb7:	0f b6 00             	movzbl (%rax),%eax
  400bba:	84 c0                	test   %al,%al
  400bbc:	0f 85 4c ff ff ff    	jne    400b0e <digit2hex+0x20>
  400bc2:	48 8b 45 e0          	mov    -0x20(%rbp),%rax
  400bc6:	5d                   	pop    %rbp
  400bc7:	c3                   	ret

0000000000400bc8 <getrid>:
  400bc8:	55                   	push   %rbp
  400bc9:	48 89 e5             	mov    %rsp,%rbp
  400bcc:	8b 05 5e 15 20 00    	mov    0x20155e(%rip),%eax        # 602130 <run_id.3623>
  400bd2:	85 c0                	test   %eax,%eax
  400bd4:	79 17                	jns    400bed <getrid+0x25>
  400bd6:	e8 b5 fb ff ff       	call   400790 <getpid@plt>
  400bdb:	89 c7                	mov    %eax,%edi
  400bdd:	e8 0e fc ff ff       	call   4007f0 <srand@plt>
  400be2:	e8 59 fc ff ff       	call   400840 <rand@plt>
  400be7:	89 05 43 15 20 00    	mov    %eax,0x201543(%rip)        # 602130 <run_id.3623>
  400bed:	8b 05 3d 15 20 00    	mov    0x20153d(%rip),%eax        # 602130 <run_id.3623>
  400bf3:	5d                   	pop    %rbp
  400bf4:	c3                   	ret

0000000000400bf5 <fillregion>:
  400bf5:	55                   	push   %rbp
  400bf6:	48 89 e5             	mov    %rsp,%rbp
  400bf9:	48 89 7d e8          	mov    %rdi,-0x18(%rbp)
  400bfd:	89 75 e4             	mov    %esi,-0x1c(%rbp)
  400c00:	89 55 e0             	mov    %edx,-0x20(%rbp)
  400c03:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%rbp)
  400c0a:	eb 1d                	jmp    400c29 <fillregion+0x34>
  400c0c:	8b 45 fc             	mov    -0x4(%rbp),%eax
  400c0f:	48 98                	cltq
  400c11:	48 8d 14 85 00 00 00 	lea    0x0(,%rax,4),%rdx
  400c18:	00 
  400c19:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  400c1d:	48 01 c2             	add    %rax,%rdx
  400c20:	8b 45 e0             	mov    -0x20(%rbp),%eax
  400c23:	89 02                	mov    %eax,(%rdx)
  400c25:	83 45 fc 01          	addl   $0x1,-0x4(%rbp)
  400c29:	8b 45 fc             	mov    -0x4(%rbp),%eax
  400c2c:	3b 45 e4             	cmp    -0x1c(%rbp),%eax
  400c2f:	7c db                	jl     400c0c <fillregion+0x17>
  400c31:	5d                   	pop    %rbp
  400c32:	c3                   	ret

0000000000400c33 <checkregion>:
  400c33:	55                   	push   %rbp
  400c34:	48 89 e5             	mov    %rsp,%rbp
  400c37:	48 89 7d e8          	mov    %rdi,-0x18(%rbp)
  400c3b:	89 75 e4             	mov    %esi,-0x1c(%rbp)
  400c3e:	89 55 e0             	mov    %edx,-0x20(%rbp)
  400c41:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%rbp)
  400c48:	eb 26                	jmp    400c70 <checkregion+0x3d>
  400c4a:	8b 45 fc             	mov    -0x4(%rbp),%eax
  400c4d:	48 98                	cltq
  400c4f:	48 8d 14 85 00 00 00 	lea    0x0(,%rax,4),%rdx
  400c56:	00 
  400c57:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  400c5b:	48 01 d0             	add    %rdx,%rax
  400c5e:	8b 00                	mov    (%rax),%eax
  400c60:	3b 45 e0             	cmp    -0x20(%rbp),%eax
  400c63:	74 07                	je     400c6c <checkregion+0x39>
  400c65:	b8 00 00 00 00       	mov    $0x0,%eax
  400c6a:	eb 11                	jmp    400c7d <checkregion+0x4a>
  400c6c:	83 45 fc 01          	addl   $0x1,-0x4(%rbp)
  400c70:	8b 45 fc             	mov    -0x4(%rbp),%eax
  400c73:	3b 45 e4             	cmp    -0x1c(%rbp),%eax
  400c76:	7c d2                	jl     400c4a <checkregion+0x17>
  400c78:	b8 01 00 00 00       	mov    $0x1,%eax
  400c7d:	5d                   	pop    %rbp
  400c7e:	c3                   	ret

0000000000400c7f <exec_phase>:
  400c7f:	55                   	push   %rbp
  400c80:	48 89 e5             	mov    %rsp,%rbp
  400c83:	53                   	push   %rbx
  400c84:	48 83 ec 58          	sub    $0x58,%rsp
  400c88:	48 89 7d a8          	mov    %rdi,-0x58(%rbp)
  400c8c:	48 8d 45 b0          	lea    -0x50(%rbp),%rax
  400c90:	25 f0 3f 00 00       	and    $0x3ff0,%eax
  400c95:	48 89 05 e4 34 20 00 	mov    %rax,0x2034e4(%rip)        # 604180 <alloca_size.3650>
  400c9c:	48 8b 05 dd 34 20 00 	mov    0x2034dd(%rip),%rax        # 604180 <alloca_size.3650>
  400ca3:	48 8d 50 0f          	lea    0xf(%rax),%rdx
  400ca7:	b8 10 00 00 00       	mov    $0x10,%eax
  400cac:	48 83 e8 01          	sub    $0x1,%rax
  400cb0:	48 01 d0             	add    %rdx,%rax
  400cb3:	bb 10 00 00 00       	mov    $0x10,%ebx
  400cb8:	ba 00 00 00 00       	mov    $0x0,%edx
  400cbd:	48 f7 f3             	div    %rbx
  400cc0:	48 6b c0 10          	imul   $0x10,%rax,%rax
  400cc4:	48 29 c4             	sub    %rax,%rsp
  400cc7:	48 89 e0             	mov    %rsp,%rax
  400cca:	48 83 c0 0f          	add    $0xf,%rax
  400cce:	48 c1 e8 04          	shr    $0x4,%rax
  400cd2:	48 c1 e0 04          	shl    $0x4,%rax
  400cd6:	48 89 05 ab 34 20 00 	mov    %rax,0x2034ab(%rip)        # 604188 <alloca_region.3649>
  400cdd:	b8 00 00 00 00       	mov    $0x0,%eax
  400ce2:	e8 e1 fe ff ff       	call   400bc8 <getrid>
  400ce7:	89 c2                	mov    %eax,%edx
  400ce9:	48 8b 05 90 34 20 00 	mov    0x203490(%rip),%rax        # 604180 <alloca_size.3650>
  400cf0:	48 c1 e8 02          	shr    $0x2,%rax
  400cf4:	89 c1                	mov    %eax,%ecx
  400cf6:	48 8b 05 8b 34 20 00 	mov    0x20348b(%rip),%rax        # 604188 <alloca_region.3649>
  400cfd:	89 ce                	mov    %ecx,%esi
  400cff:	48 89 c7             	mov    %rax,%rdi
  400d02:	e8 ee fe ff ff       	call   400bf5 <fillregion>
  400d07:	48 8b 45 a8          	mov    -0x58(%rbp),%rax
  400d0b:	48 89 c7             	mov    %rax,%rdi
  400d0e:	e8 a1 fd ff ff       	call   400ab4 <phase>
  400d13:	b8 00 00 00 00       	mov    $0x0,%eax
  400d18:	e8 ab fe ff ff       	call   400bc8 <getrid>
  400d1d:	89 c2                	mov    %eax,%edx
  400d1f:	48 8b 05 5a 34 20 00 	mov    0x20345a(%rip),%rax        # 604180 <alloca_size.3650>
  400d26:	48 c1 e8 02          	shr    $0x2,%rax
  400d2a:	89 c1                	mov    %eax,%ecx
  400d2c:	48 8b 05 55 34 20 00 	mov    0x203455(%rip),%rax        # 604188 <alloca_region.3649>
  400d33:	89 ce                	mov    %ecx,%esi
  400d35:	48 89 c7             	mov    %rax,%rdi
  400d38:	e8 f6 fe ff ff       	call   400c33 <checkregion>
  400d3d:	85 c0                	test   %eax,%eax
  400d3f:	75 0a                	jne    400d4b <exec_phase+0xcc>
  400d41:	bf 20 11 40 00       	mov    $0x401120,%edi
  400d46:	e8 15 fa ff ff       	call   400760 <puts@plt>
  400d4b:	48 8b 5d f8          	mov    -0x8(%rbp),%rbx
  400d4f:	c9                   	leave
  400d50:	c3                   	ret

0000000000400d51 <main>:
  400d51:	55                   	push   %rbp
  400d52:	48 89 e5             	mov    %rsp,%rbp
  400d55:	48 83 ec 20          	sub    $0x20,%rsp
  400d59:	89 7d ec             	mov    %edi,-0x14(%rbp)
  400d5c:	48 89 75 e0          	mov    %rsi,-0x20(%rbp)
  400d60:	b8 00 00 00 00       	mov    $0x0,%eax
  400d65:	e8 5e fe ff ff       	call   400bc8 <getrid>
  400d6a:	48 c7 45 f8 00 00 00 	movq   $0x0,-0x8(%rbp)
  400d71:	00 
  400d72:	83 7d ec 01          	cmpl   $0x1,-0x14(%rbp)
  400d76:	75 0d                	jne    400d85 <main+0x34>
  400d78:	48 8b 05 c1 13 20 00 	mov    0x2013c1(%rip),%rax        # 602140 <stdin@GLIBC_2.2.5>
  400d7f:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
  400d83:	eb 73                	jmp    400df8 <main+0xa7>
  400d85:	83 7d ec 02          	cmpl   $0x2,-0x14(%rbp)
  400d89:	75 4a                	jne    400dd5 <main+0x84>
  400d8b:	48 8b 45 e0          	mov    -0x20(%rbp),%rax
  400d8f:	48 83 c0 08          	add    $0x8,%rax
  400d93:	48 8b 00             	mov    (%rax),%rax
  400d96:	be 42 11 40 00       	mov    $0x401142,%esi
  400d9b:	48 89 c7             	mov    %rax,%rdi
  400d9e:	e8 7d fa ff ff       	call   400820 <fopen@plt>
  400da3:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
  400da7:	48 83 7d f8 00       	cmpq   $0x0,-0x8(%rbp)
  400dac:	75 4a                	jne    400df8 <main+0xa7>
  400dae:	48 8b 45 e0          	mov    -0x20(%rbp),%rax
  400db2:	48 83 c0 08          	add    $0x8,%rax
  400db6:	48 8b 00             	mov    (%rax),%rax
  400db9:	48 89 c6             	mov    %rax,%rsi
  400dbc:	bf 48 11 40 00       	mov    $0x401148,%edi
  400dc1:	b8 00 00 00 00       	mov    $0x0,%eax
  400dc6:	e8 f5 f9 ff ff       	call   4007c0 <printf@plt>
  400dcb:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
  400dd0:	e9 87 01 00 00       	jmp    400f5c <main+0x20b>
  400dd5:	48 8b 45 e0          	mov    -0x20(%rbp),%rax
  400dd9:	48 8b 00             	mov    (%rax),%rax
  400ddc:	48 89 c6             	mov    %rax,%rsi
  400ddf:	bf 6c 11 40 00       	mov    $0x40116c,%edi
  400de4:	b8 00 00 00 00       	mov    $0x0,%eax
  400de9:	e8 d2 f9 ff ff       	call   4007c0 <printf@plt>
  400dee:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
  400df3:	e9 64 01 00 00       	jmp    400f5c <main+0x20b>
  400df8:	bf 88 11 40 00       	mov    $0x401188,%edi
  400dfd:	e8 5e f9 ff ff       	call   400760 <puts@plt>
  400e02:	bf b8 11 40 00       	mov    $0x4011b8,%edi
  400e07:	e8 54 f9 ff ff       	call   400760 <puts@plt>
  400e0c:	ba 00 20 00 00       	mov    $0x2000,%edx
  400e11:	be 00 00 00 00       	mov    $0x0,%esi
  400e16:	bf 80 21 60 00       	mov    $0x602180,%edi
  400e1b:	e8 b0 f9 ff ff       	call   4007d0 <memset@plt>
  400e20:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400e24:	48 89 c1             	mov    %rax,%rcx
  400e27:	ba ff 1f 00 00       	mov    $0x1fff,%edx
  400e2c:	be 01 00 00 00       	mov    $0x1,%esi
  400e31:	bf 80 21 60 00       	mov    $0x602180,%edi
  400e36:	e8 45 f9 ff ff       	call   400780 <fread@plt>
  400e3b:	48 89 45 f0          	mov    %rax,-0x10(%rbp)
  400e3f:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400e43:	48 89 c7             	mov    %rax,%rdi
  400e46:	e8 25 f9 ff ff       	call   400770 <ferror@plt>
  400e4b:	85 c0                	test   %eax,%eax
  400e4d:	74 0f                	je     400e5e <main+0x10d>
  400e4f:	bf e0 11 40 00       	mov    $0x4011e0,%edi
  400e54:	e8 07 f9 ff ff       	call   400760 <puts@plt>
  400e59:	e9 e0 00 00 00       	jmp    400f3e <main+0x1ed>
  400e5e:	48 8b 45 f0          	mov    -0x10(%rbp),%rax
  400e62:	48 05 80 21 60 00    	add    $0x602180,%rax
  400e68:	c6 00 00             	movb   $0x0,(%rax)
  400e6b:	41 b9 00 00 00 00    	mov    $0x0,%r9d
  400e71:	41 b8 00 00 00 00    	mov    $0x0,%r8d
  400e77:	b9 32 01 00 00       	mov    $0x132,%ecx
  400e7c:	ba 07 00 00 00       	mov    $0x7,%edx
  400e81:	be 00 40 00 00       	mov    $0x4000,%esi
  400e86:	bf 00 00 00 04       	mov    $0x4000000,%edi
  400e8b:	e8 20 f9 ff ff       	call   4007b0 <mmap@plt>
  400e90:	48 89 05 c9 12 20 00 	mov    %rax,0x2012c9(%rip)        # 602160 <buffer_stack_area>
  400e97:	48 8b 05 c2 12 20 00 	mov    0x2012c2(%rip),%rax        # 602160 <buffer_stack_area>
  400e9e:	48 3d 00 00 00 04    	cmp    $0x4000000,%rax
  400ea4:	74 28                	je     400ece <main+0x17d>
  400ea6:	48 8b 05 9b 12 20 00 	mov    0x20129b(%rip),%rax        # 602148 <stderr@GLIBC_2.2.5>
  400ead:	48 89 c1             	mov    %rax,%rcx
  400eb0:	ba 53 00 00 00       	mov    $0x53,%edx
  400eb5:	be 01 00 00 00       	mov    $0x1,%esi
  400eba:	bf 08 12 40 00       	mov    $0x401208,%edi
  400ebf:	e8 6c f9 ff ff       	call   400830 <fwrite@plt>
  400ec4:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
  400ec9:	e9 8e 00 00 00       	jmp    400f5c <main+0x20b>
  400ece:	48 8b 05 8b 12 20 00 	mov    0x20128b(%rip),%rax        # 602160 <buffer_stack_area>
  400ed5:	48 05 f8 3f 00 00    	add    $0x3ff8,%rax
  400edb:	48 89 05 86 12 20 00 	mov    %rax,0x201286(%rip)        # 602168 <buffer_stack_top>
  400ee2:	48 8b 15 7f 12 20 00 	mov    0x20127f(%rip),%rdx        # 602168 <buffer_stack_top>
  400ee9:	48 89 e0             	mov    %rsp,%rax
  400eec:	48 89 d4             	mov    %rdx,%rsp
  400eef:	48 83 e4 f0          	and    $0xfffffffffffffff0,%rsp
  400ef3:	48 89 c2             	mov    %rax,%rdx
  400ef6:	48 89 15 73 12 20 00 	mov    %rdx,0x201273(%rip)        # 602170 <main_stack_top>
  400efd:	bf 80 21 60 00       	mov    $0x602180,%edi
  400f02:	e8 78 fd ff ff       	call   400c7f <exec_phase>
  400f07:	48 8b 05 62 12 20 00 	mov    0x201262(%rip),%rax        # 602170 <main_stack_top>
  400f0e:	48 89 c4             	mov    %rax,%rsp
  400f11:	48 8b 05 48 12 20 00 	mov    0x201248(%rip),%rax        # 602160 <buffer_stack_area>
  400f18:	be 00 40 00 00       	mov    $0x4000,%esi
  400f1d:	48 89 c7             	mov    %rax,%rdi
  400f20:	e8 eb f8 ff ff       	call   400810 <munmap@plt>
  400f25:	48 c7 05 38 12 20 00 	movq   $0x0,0x201238(%rip)        # 602168 <buffer_stack_top>
  400f2c:	00 00 00 00 
  400f30:	48 8b 05 31 12 20 00 	mov    0x201231(%rip),%rax        # 602168 <buffer_stack_top>
  400f37:	48 89 05 22 12 20 00 	mov    %rax,0x201222(%rip)        # 602160 <buffer_stack_area>
  400f3e:	48 8b 05 fb 11 20 00 	mov    0x2011fb(%rip),%rax        # 602140 <stdin@GLIBC_2.2.5>
  400f45:	48 39 45 f8          	cmp    %rax,-0x8(%rbp)
  400f49:	74 0c                	je     400f57 <main+0x206>
  400f4b:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400f4f:	48 89 c7             	mov    %rax,%rdi
  400f52:	e8 49 f8 ff ff       	call   4007a0 <fclose@plt>
  400f57:	b8 00 00 00 00       	mov    $0x0,%eax
  400f5c:	c9                   	leave
  400f5d:	c3                   	ret
  400f5e:	66 90                	xchg   %ax,%ax

0000000000400f60 <__libc_csu_init>:
  400f60:	41 57                	push   %r15
  400f62:	41 89 ff             	mov    %edi,%r15d
  400f65:	41 56                	push   %r14
  400f67:	49 89 f6             	mov    %rsi,%r14
  400f6a:	41 55                	push   %r13
  400f6c:	49 89 d5             	mov    %rdx,%r13
  400f6f:	41 54                	push   %r12
  400f71:	4c 8d 25 98 0e 20 00 	lea    0x200e98(%rip),%r12        # 601e10 <__frame_dummy_init_array_entry>
  400f78:	55                   	push   %rbp
  400f79:	48 8d 2d 98 0e 20 00 	lea    0x200e98(%rip),%rbp        # 601e18 <__do_global_dtors_aux_fini_array_entry>
  400f80:	53                   	push   %rbx
  400f81:	4c 29 e5             	sub    %r12,%rbp
  400f84:	31 db                	xor    %ebx,%ebx
  400f86:	48 c1 fd 03          	sar    $0x3,%rbp
  400f8a:	48 83 ec 08          	sub    $0x8,%rsp
  400f8e:	e8 9d f7 ff ff       	call   400730 <_init>
  400f93:	48 85 ed             	test   %rbp,%rbp
  400f96:	74 1e                	je     400fb6 <__libc_csu_init+0x56>
  400f98:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
  400f9f:	00 
  400fa0:	4c 89 ea             	mov    %r13,%rdx
  400fa3:	4c 89 f6             	mov    %r14,%rsi
  400fa6:	44 89 ff             	mov    %r15d,%edi
  400fa9:	41 ff 14 dc          	call   *(%r12,%rbx,8)
  400fad:	48 83 c3 01          	add    $0x1,%rbx
  400fb1:	48 39 eb             	cmp    %rbp,%rbx
  400fb4:	75 ea                	jne    400fa0 <__libc_csu_init+0x40>
  400fb6:	48 83 c4 08          	add    $0x8,%rsp
  400fba:	5b                   	pop    %rbx
  400fbb:	5d                   	pop    %rbp
  400fbc:	41 5c                	pop    %r12
  400fbe:	41 5d                	pop    %r13
  400fc0:	41 5e                	pop    %r14
  400fc2:	41 5f                	pop    %r15
  400fc4:	c3                   	ret
  400fc5:	90                   	nop
  400fc6:	66 2e 0f 1f 84 00 00 	cs nopw 0x0(%rax,%rax,1)
  400fcd:	00 00 00 

0000000000400fd0 <__libc_csu_fini>:
  400fd0:	f3 c3                	repz ret

Disassembly of section .fini:

0000000000400fd4 <_fini>:
  400fd4:	48 83 ec 08          	sub    $0x8,%rsp
  400fd8:	48 83 c4 08          	add    $0x8,%rsp
  400fdc:	c3                   	ret
